﻿Public Class DedificioManz

    Public Shared Function SeleccionarTodo(ByVal descEmpresa As String, ByVal idProyecto As Int32, ByVal idEtapa As Int32) As List(Of EedificioManz)
        Dim edificios As List(Of EedificioManz) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_edificioManz_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = idEtapa
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            edificios = New List(Of EedificioManz)
                            Dim edificio As EedificioManz = Nothing
                            Do While dr.Read
                                edificio = New EedificioManz( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idEdiMzn")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoConstruccion")), _
                                    dr.GetString(dr.GetOrdinal("descTpoConstruccion")), _
                                    dr.GetDecimal(dr.GetOrdinal("areaTerreno")), _
                                    dr.GetInt32(dr.GetOrdinal("nroUnidInmob")), _
                                    dr.GetInt32(dr.GetOrdinal("nroPisos")), _
                                    dr.GetString(dr.GetOrdinal("fechInicio")), _
                                    dr.GetString(dr.GetOrdinal("fechEntrega")), _
                                    dr.GetString(dr.GetOrdinal("observaciones")), _
                                    dr.GetInt16(dr.GetOrdinal("ascensorDirecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstadoEdiMzn")), _
                                    dr.GetString(dr.GetOrdinal("descestadoEdiMzn")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                                edificios.Add(edificio)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return edificios
    End Function
    Public Shared Function SeleccionarTodo(ByVal descEmpresa As String, ByVal idProyecto As Int32, ByVal idEtapa As Int32, ByVal idTpoConstruccion As Int32) As List(Of EedificioManz)
        Dim edificios As List(Of EedificioManz) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_edificioManz_selXTpoConstruccion", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = idEtapa
                'cmd.Parameters.Add("@idTpoConstruccion", SqlDbType.Int).Value = idTpoConstruccion
                cmd.Parameters.Add("@idTpoInmueble", SqlDbType.Int).Value = idTpoConstruccion
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            edificios = New List(Of EedificioManz)
                            Dim edificio As EedificioManz = Nothing
                            Do While dr.Read
                                edificio = New EedificioManz( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idEdiMzn")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoConstruccion")), _
                                    dr.GetString(dr.GetOrdinal("descTpoConstruccion")), _
                                    dr.GetDecimal(dr.GetOrdinal("areaTerreno")), _
                                    dr.GetInt32(dr.GetOrdinal("nroUnidInmob")), _
                                    dr.GetInt32(dr.GetOrdinal("nroPisos")), _
                                    dr.GetString(dr.GetOrdinal("fechInicio")), _
                                    dr.GetString(dr.GetOrdinal("fechEntrega")), _
                                    dr.GetString(dr.GetOrdinal("observaciones")), _
                                    dr.GetInt16(dr.GetOrdinal("ascensorDirecto")), _
                                    dr.GetString(dr.GetOrdinal("estado")))

                                'dr.GetInt32(dr.GetOrdinal("idEstadoEdiMzn")), _
                                'dr.GetString(dr.GetOrdinal("descestadoEdiMzn")), _
                                edificios.Add(edificio)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return edificios
    End Function
    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal pEdificioManz As EedificioManz) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_edificioManz_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pEdificioManz.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pEdificioManz.idEtapa
                cmd.Parameters.Add("@nomEdiMzn", SqlDbType.VarChar, 55).Value = pEdificioManz.nomEdiMzn
                cmd.Parameters.Add("@idTpoConstruccion", SqlDbType.Int).Value = pEdificioManz.EtpoConstruccion.idTpoConstruccion
                cmd.Parameters.Add("@areaTerreno", SqlDbType.Decimal, 15, 2).Value = pEdificioManz.areaTerreno
                cmd.Parameters.Add("@nroUnidInmob", SqlDbType.Int).Value = pEdificioManz.nroUnidInmob
                cmd.Parameters.Add("@nroPisos", SqlDbType.Int).Value = pEdificioManz.nroPisos
                cmd.Parameters.Add("@fechInicio", SqlDbType.VarChar, 10).Value = pEdificioManz.fechInicio
                cmd.Parameters.Add("@fechEntrega", SqlDbType.VarChar, 10).Value = pEdificioManz.fechEntrega
                cmd.Parameters.Add("@observaciones", SqlDbType.Text).Value = pEdificioManz.observaciones
                cmd.Parameters.Add("@ascensorDirecto", SqlDbType.Int).Value = pEdificioManz.ascensorDirecto
                cmd.Parameters.Add("@idEstadoEdiMzn", SqlDbType.Int).Value = pEdificioManz.idEstadoEdiMzn
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pEdificioManz.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Editar(ByVal descEmpresa As String, ByVal pEdificioManz As EedificioManz) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_edificioManz_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pEdificioManz.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pEdificioManz.idEtapa
                cmd.Parameters.Add("@idEdiMzn", SqlDbType.Int).Value = pEdificioManz.idEdiMzn
                cmd.Parameters.Add("@nomEdiMzn", SqlDbType.VarChar, 55).Value = pEdificioManz.nomEdiMzn
                cmd.Parameters.Add("@idTpoConstruccion", SqlDbType.Int).Value = pEdificioManz.EtpoConstruccion.idTpoConstruccion
                cmd.Parameters.Add("@areaTerreno", SqlDbType.Decimal, 15, 2).Value = pEdificioManz.areaTerreno
                cmd.Parameters.Add("@nroUnidInmob", SqlDbType.Int).Value = pEdificioManz.nroUnidInmob
                cmd.Parameters.Add("@nroPisos", SqlDbType.Int).Value = pEdificioManz.nroPisos
                cmd.Parameters.Add("@fechInicio", SqlDbType.VarChar, 10).Value = pEdificioManz.fechInicio
                cmd.Parameters.Add("@fechEntrega", SqlDbType.VarChar, 10).Value = pEdificioManz.fechEntrega
                cmd.Parameters.Add("@observaciones", SqlDbType.Text).Value = pEdificioManz.observaciones
                cmd.Parameters.Add("@ascensorDirecto", SqlDbType.Int).Value = pEdificioManz.ascensorDirecto
                cmd.Parameters.Add("@idEstadoEdiMzn", SqlDbType.Int).Value = pEdificioManz.idEstadoEdiMzn
                cmd.Parameters.Add("@estado", SqlDbType.Char, 1).Value = pEdificioManz.estado
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pEdificioManz.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Eliminar(ByVal descEmpresa As String, ByVal pEdificioManz As EedificioManz) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_edificioManz_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pEdificioManz.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pEdificioManz.idEtapa
                cmd.Parameters.Add("@idEdiMzn", SqlDbType.Int).Value = pEdificioManz.idEdiMzn
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pEdificioManz.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

End Class
